//#include <iostream>
//
//class Entity
//{
//public :
//	virtual void PrintName() {}
//};
//
//class Player : public Entity
//{
//
//};
//
//class Enemy : public Entity
//{
//
//};
//
//int main()
//{
//	Player* player = new Player();
//	Entity* actuallyPlayer = player;
//	Entity* actuallyEnemy  = new Enemy();
//
//	try
//	{
//		Player* p0 = dynamic_cast<Player*>(actuallyPlayer);  // p0 -> actuallyPlayer
//
//		Player* p1 = dynamic_cast<Player*>(actuallyEnemy);  // p1 -> NULL 
//	}
//	catch (const std::exception& ex)
//	{
//		std::cout << ex.what() << std::endl;
//	}
//}